TypeScript基本数据类型、泛型、数组、断言
前置准备
TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准,其是由微软开发的自由和开源的编程语言;它的设计目标是开发大型应用,就是将 JavaScript 再封装一层,使之拥有更加完善的静态类型机制,通过编译出来的 JavaScript 运行在任何浏览器上(通过 TypeScript 编译器或 Babel 转译为 JavaScript 代码)
参考资料
TypeScript 官网 在线编辑环境 TypeScript 入门教程 菜鸟教程 TypeScript教程 TypeScript 中文文档
注:这篇文章基本照搬上面几个资料的,复制下来是因为有些地方想补充,但是缺乏上下文,所以索性直接都复制下来方便看
搭建环境
npm install -g typescript
# 检测是否安装好
tsc -v
创建一个项目
mkdir typescript-demo
npm init -y # 创建一个 package.json
tsc --init # 创建一个 tsconfig.json
touch index.html
touch hello.ts
编译 TS 文件
tsc hello.ts
因为 TS 是建立在 JS 的基础之上的,但是 NodeJS 又不能直接运行 TS 代码,实际使用是往往需要使用 tsc 将 TS 代码编译成 JS 代码。
所以一般使用的是 ts-node 这个工具
npm install -g ts-node
然后直接使用 ts-node 工具就能运行了
ts-node hello.ts
编写 Debug 的配置文件
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "pwa-node", // 这里要使用这个 pwa-node 默认的 node 有点问题
"request": "launch",
"name": "TypeScript Debug",
"cwd": "${workspaceRoot}",
"sourceMaps": true,
"runtimeArgs": [
"-r",
"D:/NodeJSTools/node_global/node_modules/ts-node/register"
],
"args": [
"${relativeFile}"
]
}
],
"resolveSourceMapLocations": [
"${workspaceFolder}/**",
"!**/node_modules/**" // 排除这个目录
],
}
TS 配置文件
参考资料 tsconfig.json
如果一个目录下存在一个 tsconfig.json 文件,那么它意味着这个目录是 TypeScript 项目的根目录。
使用 tsconfig.json
- 不带任何输入文件的情况下调用
tsc,编译器会从当前目录开始去查找tsconfig.json文件,逐级向上搜索父目录。 - 不带任何输入文件的情况下调用
tsc,且使用命令行参数--project(或-p)指定一个包含tsconfig.json文件的目录。
配置详情
{
"compilerOptions": {
"module": "system",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outDir": "./dist",
"sourceMap": true
},
"files": [
"hello.ts"
],
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
"files" 指定一个包含相对或绝对文件路径的列表。 "include" 和 "exclude" 属性指定一个文件 glob 匹配模式列表。 支持的 glob 通配符有:
*匹配0或多个字符(不包括目录分隔符)?匹配一个任意字符(不包括目录分隔符)**/递归匹配任意子目录